home *** CD-ROM | disk | FTP | other *** search
- /* ******************************************************************** */
- /* C code generated by: */
- /* Visual Arts Version 2.1 */
- /* Copyright 1994-95 Danny Y. Wong All rights reserved */
- /* Calgary, Alberta (CANADA) */
- /* Partial of the code is copyright by Jaba Development */
- /* ******************************************************************** */
-
- #include <VisualArts.h>
- #include <clib/VisualArts_protos.h>
-
- #define ID_Quit 0
-
- #define IconNumGads 1
- #define ID_icon1 1
- #define ID_icon2 2
- #define ID_icon3 3
- #define ID_icon4 4
- #define ID_icon5 5
-
- #include "Icon_func.c"
-
- #include "Icon_images.c"
-
- int QuitObj(struct VAobject VAObject);
- int icon1Obj(struct VAobject VAObject);
- int icon2Obj(struct VAobject VAObject);
- int icon3Obj(struct VAobject VAObject);
- int icon4Obj(struct VAobject VAObject);
- int icon5Obj(struct VAobject VAObject);
-
- int GetPubScreen(void);
- void ClosePubScreen(void);
- int OpenIconWindow(char windtitle[]);
- void CloseIconWindow(void);
- int IconHandler(void);
- int IconMainHandler(void);
- void DrawIconObjs(void);
- int main(int argc, char *argv[]);
-
- UBYTE *PubScrName = "Workbench";
- struct DrawInfo *ScrDrawInfo = NULL;
- APTR VisualInfo = NULL;
- struct Screen *Scr = NULL;
- struct Window *IconWnd = NULL;
- struct Gadget *IconGList = NULL;
- struct Gadget *IconGadgets[IconNumGads];
- struct IntuiMessage IconMsg;
- UWORD IconLeft = 118;
- UWORD IconTop = 63;
- UWORD IconWidth = 307;
- UWORD IconHeight = 56;
- struct TextAttr topaz8 = { (STRPTR)"topaz.font", 8, 0x00, 0x01 };
- struct TextAttr topaz800 = { (STRPTR)"topaz.font", 8, 0x00, 0x00 };
-
- WORD IconGadTypes[] = {
- BUTTON_KIND,
- };
-
- struct NewGadget IconNGads[] = {
- 124, 30, 62, 12, (UBYTE *)"Quit",&topaz800, ID_Quit, PLACETEXT_IN, NULL, (APTR)QuitObj,
- };
-
- ULONG IconNTags[] = {
- TAG_DONE,
- };
-
- struct Gadget icon1Gad = {
- NULL, 14, 13, 52, 23,
- GFLG_GADGHIMAGE | GFLG_GADGIMAGE, GACT_IMMEDIATE | GACT_RELVERIFY,
- GTYP_BOOLGADGET, (APTR)&def_makefileImage, (APTR)&def_makefile1Image, NULL, 0x0, NULL,
- ID_icon1, (APTR)icon1Obj
- };
-
- struct Gadget icon2Gad = {
- &icon1Gad, 126, 13, 54, 23,
- GFLG_GADGHIMAGE | GFLG_GADGIMAGE, GACT_IMMEDIATE | GACT_RELVERIFY,
- GTYP_BOOLGADGET, (APTR)&ShellImage, (APTR)&Shell1Image, NULL, 0x0, NULL,
- ID_icon2, (APTR)icon2Obj
- };
-
- struct Gadget icon3Gad = {
- &icon2Gad, 70, 13, 52, 23,
- GFLG_GADGHIMAGE | GFLG_GADGIMAGE, GACT_IMMEDIATE | GACT_RELVERIFY,
- GTYP_BOOLGADGET, (APTR)&def_mapImage, (APTR)&def_map1Image, NULL, 0x0, NULL,
- ID_icon3, (APTR)icon3Obj
- };
-
- struct Gadget icon4Gad = {
- &icon3Gad, 242, 13, 54, 22,
- GFLG_GADGHIMAGE | GFLG_GADGIMAGE, GACT_IMMEDIATE | GACT_RELVERIFY,
- GTYP_BOOLGADGET, (APTR)&AppLauncherImage, (APTR)&AppLauncher1Image, NULL, 0x0, NULL,
- ID_icon4, (APTR)icon4Obj
- };
-
- struct Gadget icon5Gad = {
- &icon4Gad, 184, 13, 54, 23,
- GFLG_GADGHIMAGE | GFLG_GADGIMAGE, GACT_IMMEDIATE | GACT_RELVERIFY,
- GTYP_BOOLGADGET, (APTR)&DPaintImage, (APTR)&DPaint1Image, NULL, 0x0, NULL,
- ID_icon5, (APTR)icon5Obj
- };
-
-
- int GetPubScreen(void)
- {
- if (!(Scr = LockPubScreen(PubScrName)))
- return(1L);
-
- if (!(VisualInfo = GetVisualInfo(Scr, TAG_DONE)))
- return(2L);
-
- if (!(ScrDrawInfo = GetScreenDrawInfo(Scr)))
- return(3L);
- return(0L);
- }
-
- void ClosePubScreen(void)
- {
- if (VisualInfo)
- FreeVisualInfo(VisualInfo);
- if (Scr)
- UnlockPubScreen(NULL, Scr);
- if (ScrDrawInfo)
- FreeScreenDrawInfo(Scr, ScrDrawInfo);
- }
-
- int OpenIconWindow(char windtitle[80])
- {
- struct NewGadget NewGad;
- struct Gadget *Gad;
- register UWORD i, j;
- UWORD offsetx = Scr->WBorLeft;
- UWORD offsety = Scr->WBorTop + Scr->Font->ta_YSize + 1;
-
- if (!(Gad = CreateContext(&IconGList)))
- return(1L);
-
- icon1Gad.TopEdge += kWindowOffSetY;
- icon2Gad.TopEdge += kWindowOffSetY;
- icon3Gad.TopEdge += kWindowOffSetY;
- icon4Gad.TopEdge += kWindowOffSetY;
- icon5Gad.TopEdge += kWindowOffSetY;
- for (i=0, j=0; i < IconNumGads; i++)
- {
- CopyMem((char *)&IconNGads[i], (char *)&NewGad, (long)sizeof(struct NewGadget));
-
- NewGad.ng_VisualInfo = VisualInfo;
- NewGad.ng_LeftEdge += offsetx;
- NewGad.ng_TopEdge += offsety;
-
- IconGadgets[i] = Gad = CreateGadgetA((ULONG)IconGadTypes[i], Gad, &NewGad,
- (struct TagItem *)&IconNTags[j]);
- while (IconNTags[j])
- j +=2;
- j++;
- if (!Gad)
- return(2L);
- }
- IconGadgets[i-1]->NextGadget = &icon5Gad;
- if (!(IconWnd = OpenWindowTags(NULL,
- WA_Left, IconLeft,
- WA_Top, IconTop,
- WA_Width, IconWidth,
- WA_Height, IconHeight + kWindowOffSetY,
- WA_NewLookMenus, TRUE,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_GADGETUP | IDCMP_GADGETDOWN ,
- WA_Flags, WFLG_CLOSEGADGET | WFLG_SMART_REFRESH |
- WFLG_RMBTRAP | WFLG_ACTIVATE |
- WFLG_DRAGBAR ,
- WA_Gadgets, IconGList,
- WA_Title, windtitle,
- WA_ScreenTitle, "Visual Arts V2.2 Copyright 1994-95 Danny Y. Wong All Rights Reserved.",
- WA_PubScreen, Scr,
- WA_MinWidth, 160,
- WA_MinHeight, 50,
- WA_MaxWidth, 640,
- WA_MaxHeight, 200,
- TAG_DONE)))
- return(3L);
-
- DrawIconObjs();
- GT_RefreshWindow(IconWnd, NULL);
- RefreshGadgets(IconGadgets[0], IconWnd, NULL);
- return(0L);
- }
-
- void CloseIconWindow(void)
- {
- if (IconWnd)
- CloseWindow(IconWnd);
- if (IconGList)
- FreeGadgets(IconGList);
- }
-
- int IconHandler(void)
- {
- struct IntuiMessage *msg;
- struct VAobject VAObject;
- int running = 1;
- int (*func)(struct VAobject VAObject);
- ULONG class;
- UWORD code;
-
- while (msg=GT_GetIMsg(IconWnd->UserPort))
- {
- CopyMem((char *)msg, (char *)&IconMsg, (long)sizeof(struct IntuiMessage));
- class = msg->Class;
- code = msg->Code;
-
- VAObject.va_Window = (struct Window *)IconWnd;
- VAObject.va_Gadget = (struct Gadget *)msg->IAddress;
- VAObject.va_IntuiMsg = (struct IntuiMessage *)msg;
- VAObject.va_Flags = 0;
- VAObject.va_UserData = 0;
-
- GT_ReplyIMsg(msg);
- switch(class)
- {
-
- case IDCMP_CLOSEWINDOW:
- return(0);
- break;
-
- case IDCMP_GADGETUP:
- func = (void *)((struct Gadget *)IconMsg.IAddress)->UserData;
- if (func != NULL)
- running = func(VAObject);
- break;
-
- }
- }
- return(running);
- }
-
- void DrawIconObjs(void)
- {
- IconDrawRects(IconWnd);
-
- }
-
- int IconMainHandler(void)
- {
- int running = 1;
- ULONG windsig, signals;
-
- windsig = 1L << IconWnd->UserPort->mp_SigBit;
-
- while (running == 1)
- {
- signals = Wait( windsig );
- if (signals & windsig)
- {
- running = IconHandler();
- }
- }
- return(running);
- }
-
- int main(int argc, char *argv[])
- {
- int rc;
-
- if (!(GetPubScreen()))
- {
- if (!(OpenIconWindow("Icon Demo")))
- {
- rc = IconMainHandler();
- CloseIconWindow();
- }
- ClosePubScreen();
- }
- return(0L);
- }
-